home *** CD-ROM | disk | FTP | other *** search
/ PC Home 138 / PC Home issue 138.iso / Software / Essentials / Netscape / nim.xpi / bin / chrome / aim.jar / content / aim / AimBuddyAlert.js < prev    next >
Encoding:
Text File  |  2002-01-15  |  4.3 KB  |  130 lines

  1. gScreenName="";
  2.  
  3. /*
  4. * Name: getBuddyState
  5. * Arguments: screenName 
  6. * Description: This function is called during the onload of buddyalert window. It gets the buddystate for the user 
  7. * whose screenname is passed in frm the datasource. If there is a valid user state it returns the user's current state.
  8. * Return Value: buddy state
  9. * Author: Prassanna<prass@netscape.com> 
  10. */
  11.  
  12. function getBuddyState(screenName)
  13. {
  14.   var buddyState = aimRDF().GetResource("http://home.netscape.com/NC-rdf#BuddyStateString");
  15.   var buddyResource = aimBuddyManager().GetUserResource(screenName);
  16.   if (buddyResource)
  17.     var target = aimRDFDataSource().GetTarget(buddyResource, buddyState, true);
  18.   if (target) {
  19.     var state = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  20.     return state;
  21.   }
  22.   return null;
  23. }
  24.  
  25. /*
  26. * Name: AimBuddyAlertWndOnLoad
  27. * Arguments: None
  28. * Description: This function is called by the onload handler of buddyalert window. It gets the screenname argument which is 
  29. * passed through the  buddy alert window open call and gets the state of the screenname user. It sets the appropriate
  30. * check boxes based on user state and sets the Ok/Cancel button handlers.
  31. * Author: Prassanna<prass@netscape.com> 
  32. */
  33.  
  34. function AimBuddyAlertWndOnLoad() {
  35.   // Set the buddyname value from the window argument which has the user selected screenname frm listsetup/online tab
  36.   var buddyelem = document.getElementById('buddyname');
  37.   var winarg = window.arguments[0];
  38.   if (winarg != null) {
  39.     buddyelem.setAttribute('value', '"'+winarg+'"');
  40.     gScreenName=winarg;
  41.   }
  42.   if (window.arguments[1] != null) {
  43.     doEditAlert(gScreenName);
  44.   }
  45.   else
  46.     doSetupAlert(gScreenName);
  47. }
  48.  
  49. function doSetupAlert(winarg)
  50. {
  51.   // Default the radio button to the right state based on user state
  52.   var state=getBuddyState(winarg);
  53.   switch (state) {
  54.     case "Offline": document.getElementById('onlinestateMsg').checked="true"; break;
  55.     case "Idle":  document.getElementById('idlestateMsg').checked="true"; break;
  56.     case "Away":  document.getElementById('awaystateMsg').checked="true"; break;
  57.     default: break;
  58.   }
  59.  
  60.   document.getElementById('alertwindow').checked="true";
  61.   doSetOKCancel(onOK, 0);
  62. }
  63.  
  64. function onOK() {
  65.   
  66.   var alertMaskSet= Components.interfaces.nsAimBuddyAlertMask;
  67.   alertMaskSet=0;
  68.   var alertEnums = Components.interfaces.nsAimBuddyAlertFlags;
  69.   var aimBuddy=aimBuddyManager();
  70.   var gChecked=0;
  71.  
  72.  
  73.   // Handle save of the alert states
  74.   if (document.getElementById("onlinestateMsg").checked) {
  75.     alertMaskSet |=  alertEnums.AlertFromOffline;
  76.     gChecked=1;
  77.     }
  78.   if (document.getElementById("idlestateMsg").checked) {
  79.     alertMaskSet |=  alertEnums.AlertFromIdle;
  80.     gChecked=1;
  81.    } 
  82.   if (document.getElementById("awaystateMsg").checked) {
  83.     alertMaskSet |=  alertEnums.AlertFromAway;
  84.     gChecked=1;
  85.     }
  86.   if (gChecked == 0)  {
  87.       aimErrorBox(aimString("msg.chooseAlertMethod"));
  88.       return;
  89.       }
  90.   var gChecked2=0;
  91.     
  92.   // Handle save of the alert methods
  93.   if (document.getElementById("alertwindow").checked) {
  94.     alertMaskSet |=  alertEnums.AlertByWindow;
  95.     gChecked2=1;
  96.     }
  97.   if (document.getElementById("alertsound").checked) {
  98.     alertMaskSet |=  alertEnums.AlertBySound;
  99.     gChecked2=1;
  100.     }
  101.   if (gChecked2 == 0)  {
  102.         aimErrorBox(aimString("msg.chooseAlertMethod"));
  103.         return;
  104.         }
  105.   aimBuddy.BuddyAlert(gScreenName, alertMaskSet);
  106.   top.window.close();
  107.   }
  108.  
  109.  
  110. function doEditAlert(ScreenName)
  111. {
  112.  
  113.   var alertEnums = Components.interfaces.nsAimBuddyAlertFlags;
  114.   var res=new Object();
  115.   aimBuddyManager().GetBuddyAlert(ScreenName, res);
  116.   var alertMaskSet = res.value;
  117.   if (alertMaskSet & alertEnums.AlertFromOffline)
  118.       document.getElementById("onlinestateMsg").checked="true"; 
  119.   if (alertMaskSet & alertEnums.AlertFromIdle)
  120.       document.getElementById("idlestateMsg").checked="true" ;
  121.   if (alertMaskSet & alertEnums.AlertFromAway)
  122.       document.getElementById("awaystateMsg").checked="true" ;
  123.   if (alertMaskSet & alertEnums.AlertByWindow)
  124.       document.getElementById("alertwindow").checked="true";
  125.   if (alertMaskSet & alertEnums.AlertBySound)
  126.       document.getElementById("alertsound").checked="true";
  127.   doSetOKCancel(onOK, 0);
  128. }
  129.  
  130.